package com.ytf.test.tenth;

/**
 * @author: YTF
 * @date: 2025/3/29
 * @version: 1.0
 * @description:
 */
interface A{
    void strA();
}
interface B{
    void strB();
}
class C implements A,B{
    @Override
    public void strA() {
        System.out.println("C strA");
    }

    @Override
    public void strB() {
        System.out.println("C strB");
    }
}
class Y implements A{

    @Override
    public void strA() {
        System.out.println("Y strA");
    }

    B makeB(){
        return new B() {

            @Override
            public void strB() {
                System.out.println("Y strB");
            }
        };
    }

}
public class MultiInterfaces {
    static void takesA(A a) {
        a.strA();
    }
    static void takesB(B b) {
        b.strB();
    }
    public static void main(String[] args) {
        takesA(new C());
        takesB(new C());
        takesA(new Y());
        takesB(new Y().makeB());
        /**
         * Output:
         * C strA
         * C strB
         * Y strA
         * Y strB
         *
         * 总结：
         * 接口没感觉因为可以多个，但换成class类就不一样了只能一个，使用内部类就很有优势了（MultiImplementation）
         */
    }
}
